package com.justgame.project.service.system.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.justgame.project.cloud.base.entity.BaseEntity;
import java.time.LocalDateTime;
import com.justgame.project.cloud.base.entity.StringEncrypt;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

/**
*
* 用户信息表
*
* @tableName sys_user_info
* @author Zwb
*/
@Data
@TableName("sys_user_info")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="SysUserInfo对象", description="用户信息表")
public class SysUserInfo extends BaseEntity {
    /**
     * 账号
     */
    @ApiModelProperty(value = "账号")
    private String userName;

    /**
     * 密码
     */
    @ApiModelProperty(value = "密码")
    private StringEncrypt password;

    /**
     * 性别
     */
    @ApiModelProperty(value = "性别")
    private Sex sex;

    /**
     * 状态
     */
    @ApiModelProperty(value = "状态")
    private Status status;

    /**
     * 电子邮箱
     */
    @ApiModelProperty(value = "电子邮箱")
    private String email;

    /**
     * 手机号
     */
    @ApiModelProperty(value = "手机号")
    private String phoneNumber;

    /**
     * 微信授权id
     */
    @ApiModelProperty(value = "微信授权id")
    private String openId;

    /**
     * 角色
     */
    @ApiModelProperty(value = "角色")
    private Role role;

    /**
     * 最后访问日期
     */
    @ApiModelProperty(value = "最后访问日期")
    private LocalDateTime lastAccessDate;

    /**
     * 性别 枚举值
     */
    public enum Sex{
        /**
         * 男性
         */
        MALE,
        /**
         * 女性
         */
        FEMALE,
        /**
         * 未知
         */
        UNKNOWN
    }
    /**
     * 状态 枚举值
     */
    public enum Status{
        /**
         * 健康
         */
        HEALTH,
        /**
         * 封禁
         */
        LOCKED
    }
    /**
     * 角色 枚举值
     */
    public enum Role{
        /**
         * 普通用户
         */
        USER,
        /**
         * 会员用户
         */
        VIP_USER,
        /**
         * 超级管理员
         */
        ADMIN
    }

}
